#ifndef Game_h
#define Game_h

#include <vector>

#include "Object.h"
#include "Player.h"

enum game_state_t { GS_SELECT_PLANETS, GS_PLAYING, GS_GAME_OVER };

class Game
{
public:
	Game();
	Game(int p_player_cap);
	~Game();

	Player* getPlayerFromObject(Object *p_kaka);
	int getNumberPlayers();
	Player* getPlayer(unsigned int p_index);
	const std::vector<Player*>& getPlayers();
	int getPlayerSpotsLeft();
	game_state_t getState();

	void setState(game_state_t p_state);

	bool addPlayer(Player *p_player);

	void restart();

protected:
	std::vector<Player*> m_players;
	game_state_t m_game_state;
	int m_player_cap;
};

#endif //Game_h
